آنچه مسلم است همه افراد زمان زیادی را بدون اینکه واقعا مطلبی برای گفتـــــن داشتــه باشند، صرف صحبت کـــردن میکنند. حتی شکسپیر با به کـار بردن همه فنون شاعری، سرودن شعرهای زیبا و نوشتن نمایشنامههای بدیع، در یک سرگذشت طولانی فقط به توصیف یک یـا چند واقعه مهم میپـــــردازد. در حالی که بایـد حداکثر مطالب را در کوتاهترین مدت بیان کرد. در واقع دیگران وقت و شکیبایی گوش دادن به سخنان طویل و بیمعنی را ندارند.
این موضـــــوع در دنیای کامپیوترها نیــز صادق است. کامپیوترها از زبان مختص به خود یعنی زبان باینری که رشتهای از اعداد ? و ? است، استفاده میکنند. اگر چه با گذشت زمان فضای بیشتری برای کار با فایلهای بزرگتر در اختیـــــار کاربران گذاشته شده است ولی هنوز مشکل فضای ذخیرهسازی و تنگناهای پهنای باند مطرح است.
معمولا برای ذخیره یک داستان کوتاه ??? هزار کلمهای در قالب یک فایل متنی، تقریبا به ??? مگابایت فضا نیاز است که این میزان نه تنها بیشتر از ظرفیت یک فلاپی دیسک است، بلکـــــه انتقال آن از طریق یک اتصال dial-up به زمان زیادی نیـاز دارد. لذا باید طی فرآیندی موسوم بـــــه فشردهسازی، اندازه فایل را بدون آسیب یــا ایجاد اشکال در دادهها، کاهش داد.
اهمیت فشردهسازی ناشی از این واقعیت است که ایجاد فضای بیشتر در هارددرایو علاوه بر آنکه منجر به عملکرد بهتر سیستم میشود، از نظر مالی نیز باعث کاهش هزینهها خواهد شد. برای مثال، اگر هزینه استفاده نامحدود از اینترنت را با نرخ یکنواخت در نظر بگیرید و در صورتـــــی که برای استفاده نامحدود ماهانه از اینترنت پول پرداخت میکنید، شاید دیگر به حجم دادههایی کـــــه ارسال یا دریافت میکنیـــد اهمیت ندهید. در حالی که شرکت ارائهدهنده خدمات اینترنتی ( ISP ) شما باید برای تمامی مـــــوارد اعم از فضای سرور تا اتصال پرسرعت هزینهای به شرکت مخابرات پرداخت کند. لذا ISP ها نرخ ماهانه خدمـــــات به مشتـــــری را بر مبنـــــای متوسط هزینه کاربران متعدد خود به اضافه سودی جزئی قرار میدهنـــــد.
بنابراین اگر همــه کاربران یک ISP بـــــه ارسال و دریافت فایلهای غیرفشرده بپـــــردازند، این حجم زیاد منجـــــر به افزایش هزینههای ISP شده و سرعت اینترنت را کاهش میدهد. ( یکی از علل نیاز به بلوکـه کردن هرزنامههـــــا جهت کاهش هزینههـــــا در سطح ISP . ) در هر حـــــال فشردهسازی یکـــــی از عملیات اصلـــــی برای کـــــار با کامپیوتر است و با احتیاج روز افـــــزون به اطلاعات و سرگرمیها در آینده نیاز بیشتری به آن خواهیم داشت.
فشردهسازی با 0 و 1
عبارت What mine is yours, and what is yours is mine. از عبارات معـــــروف یکی از نمـــــایشنامههای شکسپیـــــر است این عبارت نسبتا کوتاه است ولی میتوان آن را به طور مختصرتری نیز بیان کرد. ایــن جملـــــه شامل ?? حـــــرف، ? فاصله، یک کامـــــا و یک نقطـــــه است. بـــــا در نظر گرفتن اینکه هر بایت ( ? بیت ) معـــــرف یک کاراکتـــــر است این عبارت دارای ?? بایت ( ??? بیت ) است.
البته این جمله شامل کلمات زایدی نیز هست. در ایـــــن عبارت کلمه is سه مرتبه و کلمه what ، mine و yours دو مرتبه تکرار شدهاند. در اغلب الگوریتمهای فشردهسازی از یک فرهنگ لغت یا فهرستی از کلمههـــــا برای فایل مقصد جهـــــت کمک بـــــه ساخت اطلاعـــــات استفاده میشود. در این فهرست میتوان از نمادهای تک کاراکتری برای نمایش رشتههای تکراری کاراکترهـــــا یا کلمات فرهنگ لغت استفاده کرد. به این طریق با نادیده گرفتـــــن حرف W در اول این عبارت در کلمه What میتوان این عبارت را با استفاده از کلیدهای زیر خلاصه کرد:
@=what
#=mine
$=is
%=yours
شکل خلاصه جمله به این شکل خواهد بود: .# $ % $ @ s # $ %, and;#039&@
اکنون این عبارت فقط شامل ?? بایت است که تقریبا نصف اندازه عبارت اولیه است. بـــــا استفاده از فرهنگ لغت که تعیین کننده نماد برای هـر کلمه است، ساخت مجدد عبارت بـــــه آسانی انجام شدنی است.
البته بعضی اوقات این امکان وجود دارد که طول عبارت مختصر شده و فرهنگ لغت مربوط به آن، از عبارت اصلـــــی نیز بزرگتر شود. البته بدیهـــــی است که در سندهای بزرگتـــــر استفاده از این روش منجر به کاهش اندازه فایل میشود که بر حالت اولیه فایل ارجحیت دارد.
در کامپیوترها به عنوان زبـــــان اصلـــــی از زبان انگلیسی استفاده نمیشود. آنهـــــا کار خود را با شناسایـــــی الگوها انجام میدهنـــــد. نه تکرار کلمات. در عبارت مورد بحث اولین رشته تکـــــراری، کلمه What و دومین رشتـــــه تکراری s _ است در واقع کلمـــــه اصلی تکراری کلمه _ is _ است ( در این مثال از علامت_ برای نشان دادن فاصله استفاده میشـــــود. ) اکنـــــون اگر به جای is مقدار _ is _ را معادل $ قـــــرار دهیـــــم، ایـــــن عبارت از ?? بایت به ?? بایت کاهش مییابد: .#$%$@ s#$%, and;#039&@
دیکشنریها انطباقی هستند; به این معنا که سنــد را تحلیل کرده، از کارآتـــــرین نمادهـــــا بـــــرای جایگزینـــــی کلمههـای آن استفاده میکنند. بـــــرای مثـــــال، شما میتوانیـــــد یک نمــاد دیگر در فرهنگ لغت برای s _ نیز در نظر بگیرید ولی در این صـــــورت انـــــدازه فایل به طور مطلوبی کاهش پیدا نخواهد کرد.
فشردهسازی بیشتر
طول عبارت فوق را میتوان حتی از ?? بایت نیز کوچکتر کرد ولی برای انجـــــام این کار باید کل عبارت را فشردهتر ساخت. به عبارت دیگر باید از سطوح پایینتر کاراکترها و ارقام باینری استفاده کرد.
یک بیت یا ? یا ? است. بنابراین دو بیت یکـــــی از چهار مقدار ?? ، ?? ، ?? یا ?? است. به همین ترتیب ? بیت دارای ? مقـــــدار ممکـــــن و ? بیـــــت ( یک بایت ) دارای ??? مقدار ممکن است.
ASCII ( کـــــد استاندارد امریکایـــــی برای تبادل اطلاعات ) جدولی از ??? کاراکتـــــر استاندارد مشتمل بـــــر حروف، اعـــــداد و علایـــــم نشانهگذاری است که یک صفحه کلید استاندارد به زبان انگلیسی را تشکیل میدهند. بنا به پیشفرض در تنظیمات مجموعه کد ASCII ، اندازه هر کاراکتر ? بیت در نظر گرفته شده است .
عبـــــارت مورد بحث مـــا دارای فقط ?? مقدار کاراکتری است ولی اگر ایــن رشته کاراکتری برحسب مقادیر باینـــــری درج شود، فقط شامل ?? مقدار ( . and ا, %$#@ ) میشود. لذا برای ارائه این رشته به جـــــای ??? مقدار فقط به ?? مقدار نیـــــاز خواهیـــــم داشت. برای درک بهتر این مطلب به جدول ? مراجعه کنید:
برای افزایش بازده کار در این جدول و نگاشت کدهای کوتاهتر نمادهایی که به طور متداول از آنها استفاده میشود، به کار برده شدهاند.
جمع بیتها در این جمله ?? بیت است که نسبت به ??? بیت در عبارت اصلی، نسبت فشردهسازی آن ?? به ? است. در این مثال کدهای مورد استفاده به عنوان نمونه ارائه شدهاند. فرضا کد ??? کـه می تواند به شکل "."، "$@، "_#" یـــــا حتی "$"_ در نظـــــر گرفته شوند. کدهـــــای حقیقی بایـــــد در یک رشتـــــه طولانـــــی باینـــــری و به صورت منحصر به فرد قابل شناسایی باشند.
الگوریتمهای مختلف
با توجه به اینکه کلیه فایلها از نظر فشردهسازی در یک رده قرار ندارند، استفاده از یک الگوریتم فشردهسازی بـــــرای همه فایلها کار درستی نیست. بدین منظـــــور بـــــرای فشـــــرده کردن فایلهـــــا رویههــــــای مختلفـــــی ارائه شده است. در سیستم عامل مکینتاش اغلب از فرمت فایل RAR و SIT و در کامپیوترهـــــای PC عمدتا از فرمت ZIP برای فشردهسازی استفاده میشود. این رویههـــــا کـــــه برای فشردهسازی یا آرشیو دستـــــهای از فایلها مـــــورد استفـاده قـرار میگیرند، فشردهسازی بدون اتلاف ( lossless ) هستنــــد. در این روش تعداد بیتهای هر پیکسل بدون از دست دادن اطلاعات یـــــا کیفیت کــاهش داده شده یا از حالت فشرده خارج میشود.
در فرمتهـــــای فشردهســـــازی تصویر ماننـــــد فرمت JPEG ، فرمت تصاویر ویدئـــــویـــــی ماننـــــد MPEG-4 فرمــتهــای صــوتــی مـاننـد MP3 ، WAV علاوه بـــــر کـاهش انـدازه فایل میتوان بـر میزان فشردهسازی کنترل داشت. ایـــــن فرمتها برای فشردهسازی فایلهای صوتی، ویدئویی و تصویری فوقالعاده هستند. ولی در این رویهها فشردهسازی بـا اتلاف ( lossy ) انجام میشود; بدین معنا که بخشی از اطلاعات حذف میشوند .
البته روشهای فوق برای کاهش حجم سندهـــــای متنـــــی مناسب نیستند، زیرا نتیجه کار فایلی است که پس از خــارج شدن از حالت فشرده، نیمی از حروف آن از بین رفته است.
به همیـــــن ترتیب، فناوریهای فشردهسازی سنتی مانند LZW و ZIP به هیچ نحو مناسب فشردهسازی فایلهای صوتی و تصویری نیستند، زیرا این برنامههـــــای سنتی، محتویـــــات چندرسانـــــهای را نمیشناسند، لذا برای فشردهسازی فایلهای صوتی از فرمتهای صوتـــــی خاصـــــی که سیگنالهـــــای صوتی را شناسایی و بر پایه مدلهـــــای ساختـــــه شده بر اســـــاس قــدرت شنوایی انسان تغییر میدهند، استفاده میشود. فرضا در فشردهســـــازی فایلهـــــای صوتی، هنگامی کــه صدای یک زنگ کوتاه تحت تاثیر صدای بلند یک سنج شنیده نمیشود، این نـــــوع صدا به هنگام فشردهسـازی فـــــایل، ضبط نمیشـــــود.
همین طور هنگامـــــی کـــــه بلندگوهای شنوندگان فایل صوتی فقط اصواتی تا فرکانس ?? کیلوهرتــز را پخش میکنـــــد، دلیلـــــی ندارد که کلیه اطلاعات بین فرکانسهایی از ?? تا ?? کیلوهرتز و یا بالاتر از قوه شنوایی بیشتر انسانها در فایل قرار گیرند.
فرآیند فشردهسازی فایلهای ویدئویی از این هم پیچیدهتر است. تازه کاران میتوانند عملیاتی مانند محدودسازی پالت رنگ را که کاملا مشابه کاهش اندازه فایل از طریق فرهنگ لغت نمادها است، انجام دهنـــــد. در این نوع فشردهسازی، اگر مقدار رنگ پیکسل از یک قاب به قاب دیگر تغییر نکرده باشد، نیازی به ذخیره دوباره آن نیست; فقط در قاب بعدی باید بـــــه این پیکسل اشــاره شود تا رنگ موجود در آن نقطه تکرار شود.
استفـــــاده از بعضی روشهای دیگر، مستلزم داشتن مهارتهای بیشتـــــری است ماننـــــد رمزگذاری دلتـــــای شرکت اینتل ( Intel ) که مدتهاست بـــــه خاطر طرح Indeo از آن استفـــــاده میشود. اگـــــر عکسی از یک رنگینکمان کامل بگیـــــرید، مشاهـــــده خواهید کرد که رنگ به طور یکنواخت از قرمـز تا بنفش تغییر میکنـــــد و تغییـــــر رنگها بـــــه تدریج انجـــــام میشود. اگر روی خطی از پیکسلهـــــا به طور افقـــــی حرکت کنید، رنگ از یک نقطه به نقطه دیگر به تدریج تغییر میکند و مانع تکرار یک مقدار میشـــــود. بنابرایـــــن طی مراحل مختلف رمزگذاری دلتا، از گستره بزرگی از رنگهای از پیشتعریف شـــــده، مانند آبی- قرمـــــز- نارنجـی یا رنگهای یک طیف استفاده میشود. در برنامه Indeo تلاش میشود تا تغییر تدریجی درجـــــه رنگ قوس و قزح با یکی از ســـــایه رنگهای از پیش تعریف شـــــده تطبیق داده شود و در نهایت یک فـــــرهنگ لغت اختصاری مربوط به آن ارائه شود.
انتخاب نوع فشردهسازی
با وجود انواع روشهای فشردهسازی، بهتریـــــن روش آن است که در آن از چند فـرمت متداول در فایل مورد نظر پشتیبانی شود. البته بـــــرای فشردهســـــازی فـــــایل بــه یک رابط آسان و کاربر پسند نیز نیـــــاز خواهیـــــد داشت. برای مثال، فشردهسازی فایلهای صوتی بـــــه فـــــرمت WMA بـــــا استفاده برنامه کاملا منـــــاسب و ســـــاده Windows Media Encoder 9 به سهولت انجام میپذیرد; زیـرا این برنامه از رابـــــط محبـــــوب و پـــــرطرفدار ویندوز بهره میگیرد. Windows Media Encoder 8 از طریق خط فرمان اجرا میشود. برای کسب اطلاعات بیشتر در مورد انواع فشردهسازی به روش lossless به سایت زیر مراجعه کنید:
http://Compression.ca Jeff Gilchrist Compression Archive در این سایت بررسیهای جامعی در مورد برنامههای اصلی و فرعی فشردهسازی و پیوند به آنها ارائه میشود .
فشردهســـــازی صوتـــــی سمت کلاینت بـــــا نرمافزارهایـــــی (مانند برنـــــامـــــه QuickTime شرکت Apple ، RealAudio شرکت RealNetworks و Windows Media Audio شرکت Microsoft یا از طریق برنامههـای توسعـــــهدهندگان نرمافزاری دیگر مانند برنامه MusicMatch Jukebox برای فشردهســـازی فایلهـــــای صوتی خام بـــــه MP3 یـــــا Windows Media صورت میگیرد. اگر در کار فشردهسازی فایلها تازه کار هستید و نیاز به راهنمایی دارید میتوانید از یکـــــی یا هر سه برنامه فشـــــردهسازی به روش Lossless کـــه به طور رایگان ارائه میشود، استفاده کنید:
1. برنامه StuffIt محصول شرکت Allume Systems ، محبوبیت این برنامه مکینتاش به طور فزایندهای در میان کاربران ویندوز، Solaris و لینوکس رو به افزایش است .
شرکت Allume مدعی است کـــــه فرمت StuffIt ) SIT ) به میزان ?? درصد بیشتر از ZIP استفاده میشـــــود و دارای یک رابط آسان است و میتـــــوان آن را از یک منـــــوی بـــــازشـــــو بـــــا یـــــک کلیک راست در Windows Explorer نیز اجرا کرد. در کل StuffIt یک برنامه عالی و اجرای آن فوقالعاده آسان است.
2. برنامـــــه PKZIP ســـــاخت PKWare ، بیش از یک دهه قبل شرکت PKWare فرمت ZIP را ارائه داد و از آن زمـــــان تاکنـــــون همچنان به توسعه و بهینهسازی این فناوری کاربر پسند پرطرفدار ادامه داده است. تـرکیب رمزی و فشردهسازی این برنامـــــه، امنیت مستنـــــدات کاربر را بـــــا استفاده از مجوزها و کلمههای عبور تامین میکند و نیز با کاهش پهنای باند مورد نیاز، در تامیـــــن نیازمندیهای حافظه مدیران شبکـــــه را یاری میدهد. شـــــرکت PKWare نسخههـــــای مختلفـــــی از PKZIP بـــــرای انواع سیستمها از دسکتــاپ گرفته تا سیستمهای MainFrame ارائه میکند .
3. برنـــــامـــــه WinZip ســـــاخت شـــرکت WinZip Computing ، WinZip اولیـــــن برنامه تحت ویندوز است کـــــه در آن از فناوری ZIP استفاده شده است. ویـــــزارد کوچک و آســـــان و نیـــــز رابط قدرتمنـــــد آن بـــــاعث شـــــده است کـــــه این برنامه همچنان یکی از برنامههای کاربـــــر پسنـــــد پرطرفدار فشردهسازی به شمار آید. امروزه WinZip یکـــــی از برنامههای اصلی ویندوز XP محسوب میشود که بدون هیچ مشکلی در پوسته Windows Explorer گنجانده شده است. به این ترتیب هر کاربر پیشرفتهای میتواند به بیشترین ویژگیهای فشردهسازی بـــــدون نیاز به باز کردن این برنامه دسترسی داشته باشد .
حکایت فشردهسازی در ویندوز
در اوایل دهه ?? یعنی زمانی کـــــه ظـــــرفیت درایوها اندک و DOS حـــــاکم بلامنازع دنیای کامپیوتر بود، برنامه STACKER ارائه و به زودی محبـــــوبیت فوقالعـــــادهای یافت. بـــــه کمک ایــن برنامه و پرداخت هزینهای چند دلاری هر کاربری میتوانست با اجرای یک رشته عملیـــــات ظرفیت هارددرایو خود را با فشردهسازی فایلها به دو برابر رسانده و در هنگام لزوم فایل را از حالت فشرده خارج سازد.
با گذشت زمان و طرح شکایت Stac از مایکروســـــافت، این شرکت متعهد شد که بدون هیچ گونه پرداخت هزینه برای مجوز، فناوری STACKER را در DOS 6 به کار برد. در سال ???? سیستم عامل DOS 6 با فناوری مشابهی موسوم به DoubleSpace راهاندازی شد ولی بـــــا دعـــــــوی مطـــــرح شده، مایکروسافت ملزم به پرداخت ??? میلیـــــون دلار خســـــارت بـــــه Stac شد و از آنجائیکه برنامه ارائـــــه شـــــده نیـــــز دارای اشکالات متعـــــددی بود این پرسش برای عموم مطرح شد که آیا فشردهسازی در سطح درایو کار درستی است یا نه؟
پس از چند ماه، مایکروسافت اشکالات این برنامه را بر طرف کرد. در DOS 6.2 این برنامه حذف شد ولی مجددا با نام DriveSpace همراه DOS 6.22 ارائه شد. پس از آن تا زمـــــان ارائه ویندوز ?? ، این برنامـــــه بـــــه طور گسترده برای فشردهســـــازی فایلها مورد استفاده قرار گرفت. با ارائه ویندوز ?? و نیاز به یک رابط گرافیکی و حداکثـــــر واکنش فـــــایل بـــــه هنگام فشـــــردهسازی، به تدریج از محبوبیت آن کاسته شد. به علاوه افزایش فضای هارددرایو و عدم نیاز به هر بیت از حافظه نیز به طور قابل ملاحظهای در کاهش استفاده از این برنامه تاثیر گذاشت.
در ویندوز ?? بـــــاز هـــــم شـــــرکت مایکروســـــافت درگیـــــر مشکل فشردهسازی شد; زیـرا برنامه نسبتا بهینه شده DriveSpace 3 مانند نسخههای قبلـــــی آن فقط از قابلیـــــت کار بـا FAT برخوردار بود. در ویندوز ?? با FAT و FAT32 بـــــه دو صـــــورت متفاوت برخورد شــد و کاربرانی که FAT32 را انتخاب میکردند، متوجه شدند که برای آنان برنامه فشردهسازی در نظر گرفته نشده است. این مساله هنوز هم در ویندوز Me که بعد از ویندوز ?? ارائه شد به صورت معضلی باقی مانده است.
در حال حاضر، با ورود درایوهای ??? گیگابایتی و بزرگتر به بازار و دسترسـی صاحبان کامپیوترهای شخصی به این درایوها، دیگر بـــــه فشردهسازی درایـــــو نیـــــازی نیست. بـــــا تعجب باید گفت که فشردهسازی به ویندوز بازگشته است، اما نه برای درایوها، بلکه تنها برای فایلها و پوشههای درایـــــوهایی کـــــه از سیستـــــم فایل NT موسوم به NTFS استفاده میکنند. در ویندوز XP میتوان با انتخاب گزینههایی از منوهای Windows Explorer فـــــایل را کوچکتـــــر کــرد و در برنامههـــــای کاربردی ماننـــــد Outlook مایکروسافت میتوان مکاتبات قدیمی و ضمایم فایلها را فشرده و بایگانی کرد.
به هر حال همه افرادی که با کامپیوتر کار میکنند و با ذخیرهسازی فایلها سرو کار دارند و تمامی افرادی که در حذف فایلهای قدیمی غفلت میکنند، اکنون اذعان دارند که فشردهسازی فایلها و پوشهها برای سازماندهی اطلاعات، بهینهسازی عملکرد درایو و صرفهجویی در هزینههای سختافزاری بهترین چاره کار است.
لیست کل یادداشت های وبلاگ
جستجو در وبلاگ
عضویت در خبرنامه وبلاگ
آمار بازدیدکنندگان